#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 300
int ans[N];
char tmp[600];
int nn;
void print(int x){
	itoa(x, tmp, 2);
	printf("%s\n",tmp);
}
void print2(int x,int n){
	int r,xx=x,k=0;
	while (n--){
		r=x%2;
		tmp[k++]=r;
		x=x/2;
	}
	while (k-->0) printf("%d",tmp[k]);
	printf(" <--%d\n",xx);
	
}
void f(int n,bool desc,bool val,int base){
	base=base+(val<<(n));
	if (n==0){
		print2(base,nn);
		return;
	}
	
	f(n-1,0,desc,base);
	f(n-1,1,1-desc,base);
	
}
int main(){
	nn=5;
	
	printf("%d %d %d\n",~0,~1,~-1);
	f(nn,0,0,0);
	return 0;
}